package com.wanwu.channel.dto.vo;

import lombok.Data;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.lang.reflect.Field;
import java.math.BigDecimal;

/**
 * @ClassName ApplyClearanceStrategyRequest
 * @Description 报关统一入参
 * @Author husheng
 * @Date 2020-01-21 16:45
 */
@Data
public class ApplyClearanceStrategyReqVo {

    /**
     * 支付时商户号
     */
    private String payMerchantNo;

    /**
     * 支付订单号
     */
    private String bizOrderNo;

    /**
     * 三方支付流水号
     */
    private String thirdOrderNo;

    /**
     * 海关编号
     */
    private String customsPlace;

    /**
     * 商户海关备案编号
     */
    private String merchantCustomsCode;

    /**
     * 商户海关备案名称
     */
    private String merchantCustomsName;

    /**
     * 报关类型 ADD MODIFY
     */
    private String actionType;

    /**
     * 身份证号
     */
    private String certId;

    /**
     * 姓名
     */
    private String certName;

    /**
     * 报关渠道号
     */
    private String channelNo;

    /**
     * 报关金额
     */
    private BigDecimal amount;

    /**
     * 是否拆单
     */
    private String isSplit;

    /**
     * 拆单子流水号
     */
    private String subOrderNo;

    /**
     * 币种
     */
    private String currency;

    private BigDecimal subOrderAmount;

    private BigDecimal transportAmount;

    private BigDecimal productAmount;

    //通联添加参数
    private String payPhone;

    private String postscript;

    private String payTime;

    private String isReSend;

    @Override
    public String toString() {
        return (new ReflectionToStringBuilder(this, ToStringStyle.JSON_STYLE) {
            @Override
            protected boolean accept(Field f) {
                return super.accept(f) && !f.getName().equals("certId") && !f.getName().equals("certName") && !f.getName().equals("payPhone") ;
            }
        }).toString();
    }
}
